#SHREEVATSA S CODESPEEDY PROJECT
import tkinter as tk
from tkinter import ttk

CONVERSION_FACTORS = {
    'Square Meters': 10.7639,
    'Square Meters': 1.19599,
    'Square Feet': 0.092903,
    'Square Feet': 0.111111,
    'Square Yards': 0.836127,
    'Square Yards': 9
}

class AreaConverterApp:
    def __init__(self, root):
        self.root = root
        self.root.title("Area Converter")

        self.from_label = ttk.Label(root, text="From:")
        self.from_label.grid(row=0, column=0, padx=20, pady=10, sticky=tk.W)

        self.from_unit = ttk.Combobox(root, values=list(CONVERSION_FACTORS.keys()))
        self.from_unit.grid(row=0, column=1, padx=200, pady=100)
        self.from_unit.set('Square Meters to Square Feet')

        self.value_label = ttk.Label(root, text="Value:")
        self.value_label.grid(row=1, column=0, padx=20, pady=20, sticky=tk.W)

        self.value_entry = ttk.Entry(root)
        self.value_entry.grid(row=1, column=1, padx=20, pady=20)

        self.to_label = ttk.Label(root, text="To:")
        self.to_label.grid(row=2, column=0, padx=20, pady=20, sticky=tk.W)

        self.to_unit = ttk.Combobox(root, values=list(CONVERSION_FACTORS.keys()))
        self.to_unit.grid(row=2, column=1, padx=20, pady=20)
        self.to_unit.set('Square Meters to Square Feet')

        self.convert_button = ttk.Button(root, text="Convert", command=self.convert)
        self.convert_button.grid(row=3, columnspan=2, padx=20, pady=20)

        self.result_label = ttk.Label(root, text="")
        self.result_label.grid(row=4, columnspan=2, padx=20, pady=20)

    def convert(self):
        try:
            value = float(self.value_entry.get())
            from_unit = self.from_unit.get()
            to_unit = self.to_unit.get()
            
            conversion_factor = CONVERSION_FACTORS[from_unit]
            result = value * conversion_factor / CONVERSION_FACTORS[to_unit]
            self.result_label.config(text=f"Result: {result:.2f} {to_unit.split(' ')[-1]}")
        
        except ValueError:
            self.result_label.config(text="Invalid input. Please enter a number.")

if __name__ == "__main__":
    root = tk.Tk()
    app = AreaConverterApp(root)
    root.mainloop()
